package com.neu.service;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.neu.entity.User;



public interface UserService {

	/**
	 * 按照条件进行用户查询，并且对查到的结果进行分页
	 * @param page当前页， count每页的记录数量，keywords查询关键字
	 * @return 返回当前的User对象
	 */
	public List<User> getUserList( @Param("page") Integer page,
								   @Param("count") Integer count,
								   @Param("keywords") String keywords);
	
	/**
	 * 按照条件进行用户查询，并且对查到的结果进行分页
	 * @param page当前页， count每页的记录数量，keywords查询关键字
	 * @return 返回当前的User对象为Map对象
	 */
	public Map<String,Object> getUserList_Map(@Param("page") Integer page,
												@Param("count") Integer count,
												@Param("keywords") String keywords);
	/**
	 * 按照条件进行查询，对应的是排班表，具有多个条件
	 * @param page	当前页
	 * @param count 需要每页记录的数量
	 * @param keywords 查询条件一
	 * @param keywords02 查询条件二
	 * @param keywords03 查询条件三
	 * @return 查询返回的用户对象
	 */
	public List<User> getUserList02(@Param("page") Integer page,
			@Param("count") Integer count,
			@Param("keywords") String keywords,
			@Param("keywords02") String keywords02,
			@Param("keywords03") String keywords03);
	
	/**
	 * 按照条件查询，显示查询到的记录数，对应的是getUserList方法
	 * @param: keywords 需要查询的关键字
	 * @return 查询回来的数量
	 */
	public int getUserCount(@Param("keywords") String keywords);
	
	/**
	 * 按照条件查询，显示查询到的记录数对应的是getUserList02方法
	 * @param keywords 查询条件一
	 * @param keywords02 查询条件二
	 * @param keywords03 查询条件三
	 * @return 查询回来的数量
	 */
	
	public int getUserCount02(@Param("keywords") String keywords,
			@Param("keywords02") String keywords02,
			@Param("keywords03") String keywords03);
	
	/**
	 * 进行批量删除操作，根据传入的数组中的id --对应getUserList
	 * @param ids 存放要删除用户的id
	 * @return 删除用户的数量
	 */
	
	public int deleteUserById(@Param("id") int id);
	
	/**
	 * 进行批量删除操作，根据传入的数组中的id --对应getUserList02
	 * @param ids 存放要删除用户的id
	 * @return 删除用户的数量
	 */
	public int deleteUserByIds(@Param("ids") Integer[] ids);
	
	/**
	 * 进行用户的添加操作
	 * @param user 要添加用户的对象
	 * @return 添加用户是否成功1--成功 0--失败
	 */
	public int addUser(User user);
	
	/**
	 * 进行用户的更新操作
	 * @param user 要更新用户的数量
	 * @return 添加用户是否成功1--成功 0--失败
	 */
	public int updateUserById(User user);
	
	/**
	 * 用户登录方法
	 * @param keywords 登录的帐号
	 * @param keywords02 登录的密码
	 * @return 登录是否成功1--失败 0
	 */
	public boolean login02(@Param("keywords") String keywords,
					   @Param("keywords02") String keywords02);
	
	
	/**
	 * 用户登录方法
	 * @param keywords 登录的帐号
	 * @param keywords02 登录的密码
	 * @return User对象
	 */
	public User getUserBean(@Param("keywords") String keywords,
							@Param("keywords02") String keywords02);

	public int checkRepeat( User user);
	
}
